
/**
 * 解决Ext日期控件在FireFox3下不能正常显示的bug
 * addedBy shixy
 */
Ext.override(Ext.menu.DateMenu, {
	render : function(){
		Ext.menu.DateMenu.superclass.render.call(this);
		if(Ext.isGecko){
			this.picker.el.dom.childNodes[0].style.width = '178px';
			this.picker.el.dom.style.width = '178px';
		}
	}
});

/**
 * 输入值最大长度不超过{0}字节（注：一个汉字占两字节）
 */
Ext.form.TextField.prototype.maxLengthText = i18n.gfa4ext.maxLengthText;
Ext.form.TextField.prototype.validateValue = function(value){
    if(value.length < 1 || value === this.emptyText){ // if it's blank
         if(this.allowBlank){
             this.clearInvalid();
             return true;
         }else{
             this.markInvalid(this.blankText);
             return false;
         }
    }
    var valueLen = value.replace(/[^\x00-\xff]/g, "**").length;
    if(valueLen < this.minLength){
        this.markInvalid(String.format(this.minLengthText, this.minLength));
        return false;
    }
    if(valueLen > this.maxLength){
        this.markInvalid(String.format(this.maxLengthText, this.maxLength));
        return false;
    }
    if(this.vtype){
        var vt = Ext.form.VTypes;
        if(!vt[this.vtype](value, this)){
            this.markInvalid(this.vtypeText || vt[this.vtype +'Text']);
            return false;
        }
    }
    if(typeof this.validator == "function"){
        var msg = this.validator(value);
        if(msg !== true){
            this.markInvalid(msg);
            return false;
        }
    }
    if(this.regex && !this.regex.test(value)){
        this.markInvalid(this.regexText);
        return false;
    }
    return true;
};
